#pragma once
#include <string>

namespace System
{
	//basic implementation of Strings :)
	class SYSTEM_API String
	{
	//In Windows we usually work with Unicode string so, this class
	//will simply
	public:
		//implicit constructor
		String ();
		//copy constructor
		String (const String& stringSrc);
		String (const std::wstring& string);
		String (const LPCWSTR& string);

		~String(void);
		
		const std::wstring& getString(void) const;
		const wchar_t* c_str() const;
		String & operator=	(const String& string);
		String & operator+=	(const String& string);
		String & operator+=	(const LPCWSTR& string);
		
		size_t size(void) const;
		bool empty(void) const;
	private:
		std::wstring	m_data;
	};
	
	typedef std::vector<String>		StringList;
}
